package com.ray.service;

import java.util.List;
import java.util.Map;
import java.util.ServiceConfigurationError;

import org.apache.ibatis.javassist.compiler.ast.NewExpr;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ray.bean.AdvancePaymentBean;
import com.ray.bean.QCReportBean;
import com.ray.bean.RecruitApplyBean;
import com.ray.bean.SearchWhereBean;
import com.ray.exception.ServiceException;
import com.ray.mapper.MaterialSelectFilterMapper;
import com.ray.pojo.MaterialSelectFilterPojo;

@Service
public class MaterialSelectFilterService {
	
	@Autowired
	MaterialSelectFilterMapper materialSelectFilterMapper;
	
	/**
	 * 订单未生成投料单物料信息查询过滤信息
	* @date 2018年7月19日 下午4:17:39 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */ 
	public List<MaterialSelectFilterPojo> getOrderMaterialDataOnNotFeedOrder(Map<String, Object> map) {
		return materialSelectFilterMapper.getOrderMaterialDataOnNotFeedOrder(map);
	}
	
	/**
	 * 投料单可查询的物料信息查询过滤信息(为生产采购单的,并且是未退回的)
	* @date 2018年7月19日 下午4:49:12 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */ 
	public List<MaterialSelectFilterPojo> getFeedOrderMaterialDataOnNotIsBuild(Map<String, Object> map){
		return materialSelectFilterMapper.getFeedOrderMaterialDataOnNotIsBuild(map);
	}
	
	/**
	 * 采购单可查询物料信息,查询过滤信息(不分订单采购和库存采购)
	* @date 2018年7月19日 下午5:07:39 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */ 
	public List<MaterialSelectFilterPojo> getPurchaseOrderMaterialData(Map<String, Object> map){
		return materialSelectFilterMapper.getPurchaseOrderMaterialData(map);
	}
	
	/**
	 * 仓库原材料统计(筛选条件)
	* @date 2018年8月15日 下午2:03:49 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getMaterialSumMoneyData(Map<String, Object> map) {
		return materialSelectFilterMapper.getMaterialSumMoneyData(map);
	}

	/**
	 * 出入库查询订单+物料信息(筛选条件)
	* @date 2018年8月18日 上午9:04:08 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getWarehouseInOutData(Map<String, Object> map) {
		return materialSelectFilterMapper.getWarehouseInOutData(map);
	}
	
	/**
	 * 生成订单采购单筛选条件
	* @date 2018年8月27日 上午9:25:21 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getCreatePurchaseOrderData(Map<String, Object> map) {
		return materialSelectFilterMapper.getCreatePurchaseOrderData(map);
	}
	
	/**
	 * 生成预采购单筛选条件
	* @date 2018年8月27日 上午9:25:37 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getAdvancePurchaseData(Map<String, Object> map) {
		return materialSelectFilterMapper.getAdvancePurchaseData(map);	 
	}
	
	/**
	 * 发料单查询条件
	* @date 2018年9月6日 下午5:10:14 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getIssueNoteData(Map<String, Object> map) {
		return materialSelectFilterMapper.getIssueNoteData(map);
	}
	
	/**
	 * 获取领料单发料单物料查询条件
	* @date 2018年9月8日 上午10:50:11 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */ 
	public List<MaterialSelectFilterPojo> getFeedOrderMaterialData(Map<String, Object> map) {
		return materialSelectFilterMapper.getFeedOrderMaterialData(map);
	}
	
	/**
	 * 获取采购未入库的
	* @date 2018年9月8日 下午2:47:24 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getPurchaseOrderNotFinish(Map<String, Object> map) {
		return materialSelectFilterMapper.getPurchaseOrderNotFinish(map);
	}
	
	/**
	 * 获取入库结算查询条件件
	* @date 2018年9月30日 上午10:39:47 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getWarehouseInSumMoneyData(Map<String, Object> map) {
		return materialSelectFilterMapper.getWarehouseInSumMoneyData(map);
	}
	
	/**
	 * 获取物料BOM信息
	* @date 2018年10月13日 上午9:21:04 
	* @author 李斌
	* @return List<MaterialSelectFilterPojo> 
	* @throws
	 */
	public List<MaterialSelectFilterPojo> getOrderInfoDetailBOM(Map<String, Object> map) {
		return materialSelectFilterMapper.getOrderInfoDetailBOM(map);
	}
	
	/**
	 * 获取成品仓可出库的订单信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> getProductOutOrderData(Map<String, Object> map) {
		return materialSelectFilterMapper.getProductOutOrderData(map);
	}
	
	/**
	 * 获取未生产的订单物料信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> getOrderInfoDetailByNotProduct(Map<String, Object> map) {
		return materialSelectFilterMapper.getOrderInfoDetailByNotProduct(map);
	}
	
	/**
	 * 查询备份记录
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> getDuplicateOrderData(Map<String, Object> map) {
		return materialSelectFilterMapper.getDuplicateOrderData(map);
	}
	
	/**
	 * 查询可退回的物料信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> getCreateReturnToProvderData(Map<String, Object> map) {
		return materialSelectFilterMapper.getCreateReturnToProvderData(map);
	}
	
	/**
	 * 查询生成的退货单物料信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> getQueryReturnToProviderData(Map<String, Object> map) {
		return materialSelectFilterMapper.getQueryReturnToProviderData(map);
	}
	
	/**
	 * 查询可退回入库的物料信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> createInCountToProviderData(Map<String, Object> map) {
		return materialSelectFilterMapper.createInCountToProviderData(map);
	}
	
	/**
	 * 查询已退回入库的物料信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> queryInCountToProviderData(Map<String, Object> map) {
		return materialSelectFilterMapper.queryInCountToProviderData(map);
	}
	
	/**
	 * 查询生成返料单的查询信息
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> createReturnToWorkshopData(Map<String, Object> map) {
		return materialSelectFilterMapper.createReturnToWorkshopData(map);
	}
	
	/**
	 * 查询退回到车间的返料单
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> getReturnToWorkshopData(Map<String, Object> map) {
		return materialSelectFilterMapper.getReturnToWorkshopData(map);
	}
	
	
	/**
	 * 查询出库结算是筛选条件
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> outBalanceSelect(Map<String, Object> map) {
		return materialSelectFilterMapper.outBalanceSelect(map);
	}
	
	
	/**
	 * 查询需退回数据筛选
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> workShopNeedReturnMaterial(Map<String, Object> map) {
		return materialSelectFilterMapper.workShopNeedReturnMaterial(map);
	}
	
	
	/**
	 * 查询需退回数据筛选
	 * @param map
	 * @return
	 */
	public List<MaterialSelectFilterPojo> finishStockSearch(Map<String, Object> map) {
		return materialSelectFilterMapper.finishStockSearch(map);
	}
	
	
	/**
	 * 查询需退回数据筛选
	 * @param map
	 * @return
	 */
	public List<String> paymentRecordCustomerName(Map<String, Object> map) {
		return materialSelectFilterMapper.paymentRecordCustomerName(map);
	}
	
	
	/**
	 * 查询员工日报表筛选
	 * @param map
	 * @return
	 */
	public List<SearchWhereBean> queryEmployeeDailyWhere(Map<String, Object> map) {
		return materialSelectFilterMapper.queryEmployeeDailyWhere(map);
	}
	
	/**
	 * 查询车间物料库存查询条件
	 * @param map
	 * @return
	 */
	public List<SearchWhereBean> workShopWarehouseMaterialWhere(Map<String, Object> map) {
		return materialSelectFilterMapper.workShopWarehouseMaterialWhere(map);
	}
	/**
	 * 查询车间物料库存查询条件
	 * @param map
	 * @return
	 */
	public List<SearchWhereBean> getOrderMaterialStockCountWhere(Map<String, Object> map) {
		return materialSelectFilterMapper.getOrderMaterialStockCountWhere(map);
	}
	/**
	 * 查询设备换单查询条件
	 * @param map
	 * @return
	 */
	public List<Map> changeOrderSelect(Map<String, Object> map) {
		return materialSelectFilterMapper.changeOrderSelect(map);
	}
	
	/**
	 * 查询设备换单查询条件
	 * @param map
	 * @return
	 */
	public List<QCReportBean> qcReportSelect(Map<String, Object> map) {
		return materialSelectFilterMapper.qcReportSelect(map);
	}
	
	
	/**
	 * 查询设备换单查询条件
	 * @param map
	 * @return
	 */
	public List<QCReportBean> qcReportDisplaySelect(Map<String, Object> map) {
		return materialSelectFilterMapper.qcReportDisplaySelect(map);
	}
	
	/**
	 * 预收付款查询条件
	 * @param map
	 * @return
	 */
	public List<AdvancePaymentBean> advancePaySelect(Map<String, Object> map) {
		return materialSelectFilterMapper.advancePaySelect(map);
	}
	
	
	/**
	 * 查询招聘信息的接口
	 * @param map
	 * @return
	 */
	public  List<RecruitApplyBean> getApplyRecruitSelect(Map map){
		return materialSelectFilterMapper.getApplyRecruitSelect(map);
	}
}
